/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#include "视频图像工作区.h"

#include "ui视频图像视口.h"


static std::set<C_工作区页面*> g图像视频页面;



void f_工作区页面_视频图像初始化(S_UI渲染环境& ctx) {
	
}

C_工作区页面* f_工作区_创建视频图像(S_UI渲染环境& ctx) {
	C_视频页面* view = f_图像View_创建视频窗口(ctx);

	C_工作区页面* 工作区 = new C_工作区页面(
		E_工作区类型::e_视频图像,
		ctx,
		E_方向::e_横向,
		view,
		view->m_状态条,
		view->m_属性栏);

	//工作区->mf_打开关闭 = on_2D视口打开;
	g图像视频页面.insert(工作区);

	f_工作区_重构视频图像状态条(view->m_状态条);
	return 工作区;
}

void f_工作区_销毁视频图像(C_工作区页面* page) {
	g图像视频页面.erase(page);
	delete page;
}

void f_工作区_重构视频图像状态条(C_状态条* 状态条) {
	std::vector<S_Props> props;

	C_图像视频视口状态条* 图像视频视口状态条 = dynamic_cast<C_图像视频视口状态条*>(状态条);
	props.push_back(f_alloc_NoneProp());

	props.push_back(图像视频视口状态条->m_纹理映射容器);

	props.push_back(f_alloc_NoneProp());

	图像视频视口状态条->f_构建属性部件(props, nullptr);
}

void f_视频图像页面_设置当前节点数据() {

}

void f_视频图像页面_联动更新() {
	for (auto& e : g图像视频页面) {

	}
}

void f_视频图像工作区_销毁() {
	for (auto& e : g图像视频页面) {
		f_工作区_销毁视频图像(e);
	}
	g图像视频页面.clear();
}

void f_视频图像工作区_保存工作区状态(FILE* f, C_工作区页面* 页面) {
	auto 文件块 = f_文件块_创建(E_节点工程文件块类型::e_工程文件块_2D视口工作区状态, S_引擎配置::g_文件版本号);
	S_UI8Array* 块 = (S_UI8Array*)f_core_array_new(0, sizeof(uint8));

	//f_prop_Save(m_计算类型, 块);

	f_file_保存文件块(f, 文件块, 块);
}

void f_视频图像工作区_加载工作区状态(FILE* f, C_工作区页面* 页面) {
	S_文件块 文件块 = f_file_读取文件块(f);
	if (文件块.m_块类型 == E_节点工程文件块类型::e_工程文件块_2D视口工作区状态) {
		const uint8* 下一次读取数据指针 = 文件块.m_data;
		if (f_file_版本对比(文件块, S_引擎配置::g_低版本号_0, S_引擎配置::g_文件版本号)) {

		}
		//下一次读取数据指针 = f_prop_Load(m_计算类型, 下一次读取数据指针);
	}
	free(文件块.m_data);
}
